package com.star.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
import com.star.domain.UserInfo;
import com.star.domain.UserLogin;
import com.star.mapper.UserInfoMapper;
import com.star.service.UserInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.star.util.ImgUtil;
import com.star.util.PathUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author Star
 * @since 2021-04-21
 */
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {
    @Autowired
    private UserInfoMapper userInfoMapper;

    /**
     * 修改图片 头像
     * @param userInfo 用户信息对象
     * @param multipartFile 上传头像图片流
     * @return
     */
    @Override
    public String updateImg(UserInfo userInfo,  Integer logId ,MultipartFile multipartFile) {
        //存储图片地址 返回图片相对路径
        String imgAddr = addUserInfoImg(logId, multipartFile);
        userInfo.setInfoHeadUrl(imgAddr);
        //存入数据库
        userInfoMapper.updateById(userInfo);
        return imgAddr;
    }

    /**
     * 通用修改
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateUserBase(UserInfo userInfo){
        //修改昵称
        return userInfoMapper.updateById(userInfo)>0;
    }


    /**
     * 修改昵称
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateUserName(UserInfo userInfo){
        //修改昵称
        return userInfoMapper.updateById(userInfo)>0;
    }

    /**
     * 修改邮箱
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateUserEmail(UserInfo userInfo){
        return null;
    }

    /**
     * 修改电话
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateUserPhone(UserInfo userInfo){
        return null;
    }

    /**
     * 修改身份证
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateUserIdentity(UserInfo userInfo){
         return null;
     }

    /**
     * 修改年龄
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateAge(UserInfo userInfo){
        return null;
    }

    /**
     * 修改性别
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateGender(UserInfo userInfo){
        return null;
    }

    /**
     * 修改个性签名
     * @param userInfo 用户信息
     * @return 影响行数
     */
    public Boolean updateSignaTure(UserInfo userInfo){
        return null;
    }


    /**
     * 获取 图片目录的相对值路径
     * @param headImg
     */
    private String addUserInfoImg(Integer id, MultipartFile headImg) {
        //获取 图片目录的相对值路径
        String dest = PathUtil.getUserInfoImgPath(id);
        return ImgUtil.generateNormalImg(headImg, dest);
    }
}
